package frist50;

import java.util.HashSet;
import java.util.Set;

public class T0036 {
    public boolean isValidSudoku(char[][] board) {
        Set<Character> hash = new HashSet<>();
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                char c=board[i][j];
                if (c!='.'){
                    if (hash.contains(c)){
                        return false;
                    }else {
                        hash.add(c);
                    }
                }
            }
            hash.clear();
            for (int j = 0; j < 9; j++) {
                char c=board[j][i];
                if (c!='.'){
                    if (hash.contains(c)){
                        return false;
                    }else {
                        hash.add(c);
                    }
                }
            }
            hash.clear();
        }

        for (int i = 0; i <9 ; i+=3) {
            for (int j = 0; j <9 ; j+=3) {
                for (int k = i; k <i+3 ; k++) {
                    for (int l = j; l <j+3 ; l++) {
                        char c=board[k][l];
                        if (c!='.'){
                            if (hash.contains(c)){
                                return false;
                            }else {
                                hash.add(c);
                            }
                        }
                    }
                }
                hash.clear();
            }
        }
        return true;
    }
}
